Imputation_missing value

Imputation, 결측값 대체
1. 단순 대치법
결측값이 존재하는 데이터를 삭제한다.
결측값이 많은 경우 대량의 데이터 손실이 발생할 수 있다.
complete.cases()
하나의 열에 결측값이 존재하면, FALSE
존재하지 않으면, TRUE를 반환한다.

> missmap(copy_iris)

> copy_iris<-iris

> dim(copy_iris)

[1] 150   5

> copy_iris[sample(1:150, 30), 1]<-NA

> copy_iris<-copy_iris[complete.cases(copy_iris), ]

> dim(copy_iris)

[1] 120   5

2. 평균 대치법
관측 또는 실험으로 얻은 데이터를 대표할 수 있는 평균 혹은 중앙값으로 결측값을 대치하여
불완전한 자료를 완전한 자료로 만든다.

비조건부 평균 대치법과 조건부 평균 대치법이 있다.
비조건부 평균 대치법은 데이터의 평균값으로 결측값을 대치
조건부 평균 대치법은 데이터의 실제값들을 분석하여 회귀분석한다.
centralImputation() _ DMwR2

> copy_iris<-iris

> copy_iris[sample(1:150, 30), 1]<-NA


# 평균 대치법

> meanValue<-mean(copy_iris$Sepal.Length, na.rm=T)

> copy_iris$Sepal.Length[is.na(copy_iris$Sepal.Length)]<-meanValue


# centralImputation()을 활용한 중앙값 대치

> library(DMwR2)

> copy_iris[sample(1:150, 30), 1]<-NA

> copy_iris<-centralImputation(copy_iris)

3. 단순 확률 대치법
평균 대치법의 추정량 표준 오차의 과소 추정 문제를 보완하기 위해 고안된 방법이다.
K-Nearest Neighbor(k-최근접 이웃 알고리즘) 등이 있다.
knnImputation()

> copy_iris<-iris

> copy_iris[sample(1:150, 30), 1]<-NA

> copy_iris<-knnImputation(copy_iris, k=10)

4. 다중 대치법
여러 번의 대치를 통해 n 개의 임의 완전자료를 만드는 방법으로,
결측값 대치, 분석, 결합의 세 단계로 구성된다.
amelia() _ Amelia
m: 가상 데이터셋 만들 개수
ts: time series 시계열 저보
cs: cross-sectional, 분석에 포함될 변수

> copy_iris<-iris

> copy_iris[sample(1:150, 30), 1]<-NA

> library(Amelia)


# cs는 cross-sectional 분석에 포함될 정보를 의미

> iris_imp<-amelia(copy_iris, m=3, cs='Species')

-- Imputation 1 --


  1  2  3


-- Imputation 2 --


  1  2  3


-- Imputation 3 --


  1  2  3


> copy_iris$Sepal.Length<-iris_imp$imputations[[3]]$Sepal.Length